/******************************************************************************
	Cobalt - utility libraries for building XNA games
	Copyright (C) 2008 Philip Djonov

	This program is free software; you can redistribute it and/or modify it
	under the terms of the GNU General Public License as published by the Free
	Software Foundation; either version 2 of the License, or (at your option)
	any later version.

	This program is distributed in the hope that it will be useful, but
	WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
	or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
	for more details.

	You should have received a copy of the GNU General Public License along
	with this program; if not, write to the
	
		Free Software Foundation, Inc.
		51 Franklin Street, Fifth Floor
		Boston, MA  02110-1301, USA.
******************************************************************************/

using System;
using System.Collections.Generic;
using System.Drawing;
using System.IO;
using System.Text;

using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Content.Pipeline;
using Microsoft.Xna.Framework.Content.Pipeline.Graphics;

namespace Cobalt.Content.Pipeline.Graphics
{
	public class CobaltMaterialContent : MaterialContent
	{
		private ExternalReference<CobaltMaterialContent> parent;
		public ExternalReference<CobaltMaterialContent> Parent
		{
			get { return parent; }
			set { parent = value; }
		}

		private Dictionary<int, EffectMaterialContent> layers = new Dictionary<int, EffectMaterialContent>();
		public Dictionary<int, EffectMaterialContent> Layers
		{
			get { return layers; }
		}

		private OpaqueDataDictionary tags = new OpaqueDataDictionary();
		public OpaqueDataDictionary Tags { get { return tags; } }

		private OpaqueDataDictionary pipelineTags = new OpaqueDataDictionary();
		public OpaqueDataDictionary PipelineTags { get { return pipelineTags; } }
	}

	public class ExternalCobaltMaterialContent : MaterialContent
	{
		public ExternalCobaltMaterialContent()
		{
		}

		public ExternalCobaltMaterialContent( ExternalReference<CobaltMaterialContent> reference )
		{
			this.reference = reference;
		}

		private ExternalReference<CobaltMaterialContent> reference;
		public ExternalReference<CobaltMaterialContent> Reference
		{
			get { return reference; }
			set { reference = value; }
		}
	}

	public class NamedCobaltMaterialContent : MaterialContent
	{
	}
}
